Index: source/i18n/unicode/basictz.h
===================================================================
--- source/i18n/unicode/basictz.h (revision 23962)
+++ source/i18n/unicode/basictz.h (revision 24398)
@@ -30,5 +30,5 @@
  * This class provides some additional methods to access time zone transitions and rules.
  * All ICU <code>TimeZone</code> concrete subclasses extend this class.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API BasicTimeZone: public TimeZone {
@@ -36,5 +36,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~BasicTimeZone();
@@ -46,5 +46,5 @@
      * @param result    Receives the first transition after the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/ = 0;
@@ -56,5 +56,5 @@
      * @param result    Receives the most recent transition before the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/ = 0;
@@ -78,5 +78,5 @@
      * @return      true if the other time zone has the equivalent transitions in the
      *              time range.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool hasEquivalentTransitions(/*const*/ BasicTimeZone& tz, UDate start, UDate end,
@@ -89,5 +89,5 @@
      * @param status    Receives error status code.
      * @return The number of <code>TimeZoneRule</code>s representing time transitions.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t countTransitionRules(UErrorCode& status) /*const*/ = 0;
@@ -107,5 +107,5 @@
      *                      rules filled in the array will be set.
      * @param status        Receives error status code.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
@@ -136,5 +136,5 @@
      *                  around the specified date, NULL is set.
      * @param status    Receives error status code.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial,
@@ -173,5 +173,5 @@
     /**
      * Default constructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     BasicTimeZone();
@@ -180,5 +180,5 @@
      * Construct a timezone with a given ID.
      * @param id a system time zone ID
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     BasicTimeZone(const UnicodeString &id);
@@ -187,5 +187,5 @@
      * Copy constructor.
      * @param source the object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     BasicTimeZone(const BasicTimeZone& source);
Index: source/i18n/unicode/simpletz.h
===================================================================
--- source/i18n/unicode/simpletz.h (revision 23962)
+++ source/i18n/unicode/simpletz.h (revision 24398)
@@ -708,5 +708,5 @@
      * @param result    Receives the first transition after the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/;
@@ -718,5 +718,5 @@
      * @param result    Receives the most recent transition before the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/;
@@ -728,5 +728,5 @@
      * @param status    Receives error status code.
      * @return The number of <code>TimeZoneRule</code>s representing time transitions.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t countTransitionRules(UErrorCode& status) /*const*/;
@@ -746,5 +746,5 @@
      *                      rules filled in the array will be set.
      * @param status        Receives error status code.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
Index: source/i18n/unicode/utmscale.h
===================================================================
--- source/i18n/unicode/utmscale.h (revision 23962)
+++ source/i18n/unicode/utmscale.h (revision 24398)
@@ -278,5 +278,5 @@
      * (microseconds resolution).
      *
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UDTS_UNIX_MICROSECONDS_TIME,
Index: source/i18n/unicode/rbtz.h
===================================================================
--- source/i18n/unicode/rbtz.h (revision 24046)
+++ source/i18n/unicode/rbtz.h (revision 24398)
@@ -41,5 +41,5 @@
      * @param id                The time zone ID.
      * @param initialRule       The initial time zone rule.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     RuleBasedTimeZone(const UnicodeString& id, InitialTimeZoneRule* initialRule);
@@ -48,5 +48,5 @@
      * Copy constructor.
      * @param source    The RuleBasedTimeZone object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     RuleBasedTimeZone(const RuleBasedTimeZone& source);
@@ -54,5 +54,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~RuleBasedTimeZone();
@@ -61,5 +61,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     RuleBasedTimeZone& operator=(const RuleBasedTimeZone& right);
@@ -71,5 +71,5 @@
      * @return  true if the given <code>TimeZone</code> objects are
       *semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator==(const TimeZone& that) const;
@@ -81,5 +81,5 @@
      * @return  true if the given <code>TimeZone</code> objects are
      * semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator!=(const TimeZone& that) const;
@@ -98,5 +98,5 @@
      * @param rule The <code>TimeZoneRule</code>.
      * @param status Output param to filled in with a success or an error.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void addTransitionRule(TimeZoneRule* rule, UErrorCode& status);
@@ -109,5 +109,5 @@
      * time zone APIs such as getOffset(), getNextTransition() and others.
      * @param status Output param to filled in with a success or an error.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void complete(UErrorCode& status);
@@ -118,5 +118,5 @@
      *
      * @return   A new copy of this TimeZone object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual TimeZone* clone(void) const;
@@ -144,5 +144,5 @@
      * @param status     Output param to filled in with a success or an error.
      * @return           The offset in milliseconds to add to GMT to get local time.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
@@ -166,5 +166,5 @@
      * @param status     Output param to filled in with a success or an error.
      * @return           The offset in milliseconds to add to GMT to get local time.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
@@ -192,5 +192,5 @@
      * typically one hour.
      * @param ec input-output error code
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getOffset(UDate date, UBool local, int32_t& rawOffset,
@@ -202,5 +202,5 @@
      *
      * @param offsetMillis  The new raw GMT offset for this time zone.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void setRawOffset(int32_t offsetMillis);
@@ -211,5 +211,5 @@
      *
      * @return   The TimeZone's raw GMT offset.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t getRawOffset(void) const;
@@ -219,5 +219,5 @@
      * @return true if this time zone uses daylight savings time,
      * false, otherwise.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool useDaylightTime(void) const;
@@ -244,5 +244,5 @@
      * @return true if the given zone is the same as this one,
      * with the possible exception of the ID
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool hasSameRules(const TimeZone& other) const;
@@ -254,5 +254,5 @@
      * @param result    Receives the first transition after the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/;
@@ -264,5 +264,5 @@
      * @param result    Receives the most recent transition before the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/;
@@ -274,5 +274,5 @@
      * @param status    Receives error status code.
      * @return The number of <code>TimeZoneRule</code>s representing time transitions.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t countTransitionRules(UErrorCode& status) /*const*/;
@@ -292,5 +292,5 @@
      *                      rules filled in the array will be set.
      * @param status        Receives error status code.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
@@ -335,5 +335,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -348,5 +348,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
Index: source/i18n/unicode/dtptngen.h
===================================================================
--- source/i18n/unicode/dtptngen.h (revision 24046)
+++ source/i18n/unicode/dtptngen.h (revision 24398)
@@ -44,5 +44,5 @@
  * fields in a pattern, in order, since we have that internally.
  * That would be useful for getting the UI order of field elements.</i>
- * @stable ICU 4.0
+ * @stable ICU 3.8
 **/
 class U_I18N_API DateTimePatternGenerator : public UObject {
@@ -52,5 +52,5 @@
      * @param status  Output param set to success/failure code on exit,
      *               which must not indicate a failure before the function call.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static DateTimePatternGenerator* U_EXPORT2 createInstance(UErrorCode& status);
@@ -61,5 +61,5 @@
      * @param status  Output param set to success/failure code on exit,
      *               which must not indicate a failure before the function call.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static DateTimePatternGenerator* U_EXPORT2 createInstance(const Locale& uLocale, UErrorCode& status);
@@ -69,5 +69,5 @@
      * @param status  Output param set to success/failure code on exit,
      *               which must not indicate a failure before the function call.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
      static DateTimePatternGenerator* U_EXPORT2 createEmptyInstance(UErrorCode& status);
@@ -75,5 +75,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~DateTimePatternGenerator();
@@ -82,5 +82,5 @@
      * Clone DateTimePatternGenerator object. Clients are responsible for
      * deleting the DateTimePatternGenerator object cloned.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimePatternGenerator* clone() const;
@@ -91,5 +91,5 @@
       * @param other    the DateTimePatternGenerator object to be compared with.
       * @return         true if other is semantically equal to this.
-      * @stable ICU 4.0
+      * @stable ICU 3.8
       */
     UBool operator==(const DateTimePatternGenerator& other) const;
@@ -100,5 +100,5 @@
      * @param other    the DateTimePatternGenerator object to be compared with.
      * @return         true if other is semantically unequal to this.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool operator!=(const DateTimePatternGenerator& other) const;
@@ -112,5 +112,5 @@
      *                  which must not indicate a failure before the function call.
      * @return skeleton such as "MMMdd"
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UnicodeString getSkeleton(const UnicodeString& pattern, UErrorCode& status);
@@ -127,5 +127,5 @@
      *               which must not indicate a failure before the function call.
      * @return base skeleton, such as "Md"
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UnicodeString getBaseSkeleton(const UnicodeString& pattern, UErrorCode& status);
@@ -149,5 +149,5 @@
      * @return conflicting status.  The value could be UDATPG_NO_CONFLICT,
      *                             UDATPG_BASE_CONFLICT or UDATPG_CONFLICT.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UDateTimePatternConflict addPattern(const UnicodeString& pattern,
@@ -172,5 +172,5 @@
      * @param field  such as UDATPG_ERA_FIELD.
      * @param value  pattern, such as "{0}, {1}"
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setAppendItemFormat(UDateTimePatternField field, const UnicodeString& value);
@@ -182,5 +182,5 @@
      * @param  field  such as UDATPG_ERA_FIELD.
      * @return append pattern for field
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const UnicodeString& getAppendItemFormat(UDateTimePatternField field) const;
@@ -195,5 +195,5 @@
      * @param field   such as UDATPG_ERA_FIELD.
      * @param value   name of the field
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setAppendItemName(UDateTimePatternField field, const UnicodeString& value);
@@ -205,5 +205,5 @@
      * @param field  such as UDATPG_ERA_FIELD.
      * @return name for field
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const UnicodeString& getAppendItemName(UDateTimePatternField field) const;
@@ -226,5 +226,5 @@
      *            message format pattern, here {0} will be replaced by the date
      *            pattern and {1} will be replaced by the time pattern.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setDateTimeFormat(const UnicodeString& dateTimeFormat);
@@ -233,5 +233,5 @@
      * Getter corresponding to setDateTimeFormat.
      * @return DateTimeFormat.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const UnicodeString& getDateTimeFormat() const;
@@ -248,5 +248,5 @@
      * @return bestPattern
      *            The best pattern found from the given skeleton.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
      UnicodeString getBestPattern(const UnicodeString& skeleton, UErrorCode& status);
@@ -267,5 +267,5 @@
      *               which must not indicate a failure before the function call.
      * @return pattern adjusted to match the skeleton fields widths and subtypes.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
      UnicodeString replaceFieldTypes(const UnicodeString& pattern,
@@ -282,5 +282,5 @@
      * @return StringEnumeration with the skeletons.
      *         The caller must delete the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
      StringEnumeration* getSkeletons(UErrorCode& status) const;
@@ -290,5 +290,5 @@
       * @param skeleton
       * @return pattern corresponding to a given skeleton.
-      * @stable ICU 4.0
+      * @stable ICU 3.8
       */
      const UnicodeString& getPatternForSkeleton(const UnicodeString& skeleton) const;
@@ -301,5 +301,5 @@
      * @return a StringEnumeration with the base skeletons.
      *         The caller must delete the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
      StringEnumeration* getBaseSkeletons(UErrorCode& status) const;
@@ -328,5 +328,5 @@
      *
      * @param decimal
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setDecimal(const UnicodeString& decimal);
@@ -335,5 +335,5 @@
      * Getter corresponding to setDecimal.
      * @return UnicodeString corresponding to the decimal point
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const UnicodeString& getDecimal() const;
@@ -342,5 +342,5 @@
      * ICU "poor man's RTTI", returns a UClassID for the actual class.
      *
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID() const;
@@ -349,5 +349,5 @@
      * ICU "poor man's RTTI", returns a UClassID for this class.
      *
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -356,5 +356,5 @@
     /**
      * Constructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimePatternGenerator(UErrorCode & status);
@@ -362,5 +362,5 @@
     /**
      * Constructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimePatternGenerator(const Locale& locale, UErrorCode & status);
@@ -369,5 +369,5 @@
      * Copy constructor.
      * @param other DateTimePatternGenerator to copy
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimePatternGenerator(const DateTimePatternGenerator& other);
@@ -376,5 +376,5 @@
      * Default assignment operator.
      * @param other DateTimePatternGenerator to copy
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimePatternGenerator& operator=(const DateTimePatternGenerator& other);
Index: source/i18n/unicode/udatpg.h
===================================================================
--- source/i18n/unicode/udatpg.h (revision 23962)
+++ source/i18n/unicode/udatpg.h (revision 24398)
@@ -40,5 +40,5 @@
 /**
  * Opaque type for a date/time pattern generator object.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 typedef void *UDateTimePatternGenerator;
@@ -50,40 +50,40 @@
  * These constants are separate from UDateFormatField despite semantic overlap
  * because some fields are merged for the date/time pattern generator.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 typedef enum UDateTimePatternField {
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_ERA_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_YEAR_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_QUARTER_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_MONTH_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_WEEK_OF_YEAR_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_WEEK_OF_MONTH_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_WEEKDAY_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_DAY_OF_YEAR_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_DAY_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_DAYPERIOD_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_HOUR_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_MINUTE_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_SECOND_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_FRACTIONAL_SECOND_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_ZONE_FIELD,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_FIELD_COUNT
 } UDateTimePatternField;
@@ -91,14 +91,14 @@
 /**
  * Status return values from udatpg_addPattern().
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 typedef enum UDateTimePatternConflict {
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_NO_CONFLICT,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_BASE_CONFLICT,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_CONFLICT,
-    /** @stable ICU 4.0 */
+    /** @stable ICU 3.8 */
     UDATPG_CONFLICT_COUNT
 } UDateTimePatternConflict;
@@ -112,5 +112,5 @@
   *                   failure before the function call.
   * @return a pointer to UDateTimePatternGenerator.
-  * @stable ICU 4.0
+  * @stable ICU 3.8
   */
 U_DRAFT UDateTimePatternGenerator * U_EXPORT2
@@ -122,5 +122,5 @@
   *                   failure before the function call.
   * @return a pointer to UDateTimePatternGenerator.
-  * @stable ICU 4.0
+  * @stable ICU 3.8
   */
 U_DRAFT UDateTimePatternGenerator * U_EXPORT2
@@ -130,5 +130,5 @@
   * Close a generator.
   * @param dtpg a pointer to UDateTimePatternGenerator.
-  * @stable ICU 4.0
+  * @stable ICU 3.8
   */
 U_DRAFT void U_EXPORT2
@@ -141,5 +141,5 @@
   *                   failure before the function call.
   * @return a pointer to a new UDateTimePatternGenerator.
-  * @stable ICU 4.0
+  * @stable ICU 3.8
  */
 U_DRAFT UDateTimePatternGenerator * U_EXPORT2
@@ -167,5 +167,5 @@
  *                   failure before the function call.
  * @return the length of bestPattern.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
@@ -193,5 +193,5 @@
   *                  failure before the function call.
   * @return the length of skeleton.
-  * @stable ICU 4.0
+  * @stable ICU 3.8
   */
 U_DRAFT int32_t U_EXPORT2
@@ -222,5 +222,5 @@
  *                  failure before the function call.
  * @return the length of baseSkeleton.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
@@ -252,5 +252,5 @@
  * @return conflicting status. The value could be UDATPG_NO_CONFLICT,
  *                  UDATPG_BASE_CONFLICT or UDATPG_CONFLICT.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT UDateTimePatternConflict U_EXPORT2
@@ -279,5 +279,5 @@
   * @param value  pattern, such as "{0}, {1}"
   * @param length the length of value.
-  * @stable ICU 4.0
+  * @stable ICU 3.8
   */
 U_DRAFT void U_EXPORT2
@@ -294,5 +294,5 @@
  * @param pLength A pointer that will receive the length of appendItemFormat.
  * @return appendItemFormat for field.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const UChar * U_EXPORT2
@@ -312,5 +312,5 @@
    * @param value  name for the field.
    * @param length the length of value.
-   * @stable ICU 4.0
+   * @stable ICU 3.8
    */
 U_DRAFT void U_EXPORT2
@@ -327,5 +327,5 @@
  * @param pLength A pointer that will receive the length of the name for field.
  * @return name for field
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const UChar * U_EXPORT2
@@ -353,5 +353,5 @@
  *            pattern and {1} will be replaced by the time pattern.
  * @param length the length of dtFormat.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT void U_EXPORT2
@@ -364,5 +364,5 @@
  * @param pLength A pointer that will receive the length of the format
  * @return dateTimeFormat.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const UChar * U_EXPORT2
@@ -381,5 +381,5 @@
  * @param decimal
  * @param length the length of decimal.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT void U_EXPORT2
@@ -393,5 +393,5 @@
  * @param pLength A pointer that will receive the length of the decimal string.
  * @return corresponding to the decimal point.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const UChar * U_EXPORT2
@@ -422,5 +422,5 @@
  *                  failure before the function call.
  * @return the length of dest.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
@@ -440,5 +440,5 @@
  * @return a UEnumeration list of all the skeletons
  *         The caller must close the object.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT UEnumeration * U_EXPORT2
@@ -453,5 +453,5 @@
  * @return a UEnumeration list of all the base skeletons
  *             The caller must close the object.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT UEnumeration * U_EXPORT2
@@ -466,5 +466,5 @@
  * @param pLength pointer to the length of return pattern.
  * @return pattern corresponding to a given skeleton.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const UChar * U_EXPORT2
Index: source/i18n/unicode/dtitvinf.h
===================================================================
--- source/i18n/unicode/dtitvinf.h (revision 24244)
+++ source/i18n/unicode/dtitvinf.h (revision 24398)
@@ -210,5 +210,5 @@
      * The caller owns the result and should delete it when done.
      * @return   a copy of the object
-     * @draft    ICU4.0
+     * @draft    ICU 4.0
      */
     virtual DateIntervalInfo* clone(void) const;
Index: source/i18n/unicode/timezone.h
===================================================================
--- source/i18n/unicode/timezone.h (revision 23962)
+++ source/i18n/unicode/timezone.h (revision 24398)
@@ -330,5 +330,5 @@
      * @param status Output param to filled in with a success or an error.
      * @return the version string, such as "2007f"
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static const char* U_EXPORT2 getTZDataVersion(UErrorCode& status);
Index: source/i18n/unicode/dtrule.h
===================================================================
--- source/i18n/unicode/dtrule.h (revision 23962)
+++ source/i18n/unicode/dtrule.h (revision 24398)
@@ -25,5 +25,5 @@
  * time in the day.
  *
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API DateTimeRule : public UObject {
@@ -32,5 +32,5 @@
     /**
      * Date rule type constants.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     enum DateRuleType {
@@ -47,5 +47,5 @@
     /**
      * Time rule type constants.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     enum TimeRuleType {
@@ -65,5 +65,5 @@
      * @param timeType      The time type, <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
      *                      or <code>UTC_TIME</code>.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule(int32_t month, int32_t dayOfMonth,
@@ -83,5 +83,5 @@
      * @param timeType      The time type, <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
      *                      or <code>UTC_TIME</code>.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule(int32_t month, int32_t weekInMonth, int32_t dayOfWeek,
@@ -101,5 +101,5 @@
      * @param timeType      The time type, <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
      *                      or <code>UTC_TIME</code>.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, UBool after,
@@ -109,5 +109,5 @@
      * Copy constructor.
      * @param source    The DateTimeRule object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule(const DateTimeRule& source);
@@ -115,5 +115,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     ~DateTimeRule();
@@ -123,5 +123,5 @@
      * should delete it when done.
      * @return    A copy of the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule* clone(void) const;
@@ -130,5 +130,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule& operator=(const DateTimeRule& right);
@@ -139,5 +139,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given DateTimeRule objects are semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool operator==(const DateTimeRule& that) const;
@@ -148,5 +148,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given DateTimeRule objects are semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool operator!=(const DateTimeRule& that) const;
@@ -155,5 +155,5 @@
      * Gets the date rule type, such as <code>DOM</code>
      * @return The date rule type.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateRuleType getDateRuleType(void) const;
@@ -163,5 +163,5 @@
      * @return The time rule type, either <code>WALL_TIME</code> or <code>STANDARD_TIME</code>
      *         or <code>UTC_TIME</code>.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeRuleType getTimeRuleType(void) const;
@@ -170,5 +170,5 @@
      * Gets the rule month.
      * @return The rule month.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getRuleMonth(void) const;
@@ -178,5 +178,5 @@
      * is <code>DOW</code>, the value is always 0.
      * @return The rule day of month
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getRuleDayOfMonth(void) const;
@@ -186,5 +186,5 @@
      * is <code>DOM</code>, the value is always 0.
      * @return The rule day of week.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getRuleDayOfWeek(void) const;
@@ -195,5 +195,5 @@
      * the value is always 0.
      * @return The rule day of week ordinal number in the month.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getRuleWeekInMonth(void) const;
@@ -202,5 +202,5 @@
      * Gets the rule time in the rule day.
      * @return The time in the rule day in milliseconds.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getRuleMillisInDay(void) const;
@@ -225,5 +225,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -238,5 +238,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
Index: source/i18n/unicode/tztrans.h
===================================================================
--- source/i18n/unicode/tztrans.h (revision 23962)
+++ source/i18n/unicode/tztrans.h (revision 24398)
@@ -27,5 +27,5 @@
  * <code>TimeZoneTransition</code> is a class representing a time zone transition.
  * An instance has a time of transition and rules for both before and after the transition.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API TimeZoneTransition : public UObject {
@@ -38,5 +38,5 @@
      * @param from  The time zone rule used before the transition.
      * @param to    The time zone rule used after the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneTransition(UDate time, const TimeZoneRule& from, const TimeZoneRule& to);
@@ -44,5 +44,5 @@
     /**
      * Constructs an empty <code>TimeZoneTransition</code>
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneTransition();
@@ -51,5 +51,5 @@
      * Copy constructor.
      * @param source    The TimeZoneTransition object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneTransition(const TimeZoneTransition& source);
@@ -57,5 +57,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     ~TimeZoneTransition();
@@ -65,5 +65,5 @@
      * should delete it when done.
      * @return  A copy of the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneTransition* clone(void) const;
@@ -72,5 +72,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneTransition& operator=(const TimeZoneTransition& right);
@@ -81,5 +81,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given TimeZoneTransition objects are semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool operator==(const TimeZoneTransition& that) const;
@@ -90,5 +90,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given TimeZoneTransition objects are semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool operator!=(const TimeZoneTransition& that) const;
@@ -97,5 +97,5 @@
      * Returns the time of transition in milliseconds.
      * @return The time of the transition in milliseconds since the 1970 Jan 1 epoch time.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UDate getTime(void) const;
@@ -104,5 +104,5 @@
      * Sets the time of transition in milliseconds.
      * @param time The time of the transition in milliseconds since the 1970 Jan 1 epoch time.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setTime(UDate time);
@@ -111,5 +111,5 @@
      * Returns the rule used before the transition.
      * @return The time zone rule used after the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const TimeZoneRule* getFrom(void) const;
@@ -119,5 +119,5 @@
      * responsible for deleting the <code>TimeZoneRule</code> object.
      * @param from The time zone rule used before the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setFrom(const TimeZoneRule& from);
@@ -127,5 +127,5 @@
      * not delete the <code>TimeZoneRule</code> object passed in.
      * @param from The time zone rule used before the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void adoptFrom(TimeZoneRule* from);
@@ -135,5 +135,5 @@
      * responsible for deleting the <code>TimeZoneRule</code> object.
      * @param to The time zone rule used after the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setTo(const TimeZoneRule& to);
@@ -143,5 +143,5 @@
      * not delete the <code>TimeZoneRule</code> object passed in.
      * @param to The time zone rule used after the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void adoptTo(TimeZoneRule* to);
@@ -150,5 +150,5 @@
      * Returns the rule used after the transition.
      * @return The time zone rule used after the transition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const TimeZoneRule* getTo(void) const;
@@ -169,5 +169,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -182,5 +182,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
Index: source/i18n/unicode/ucal.h
===================================================================
--- source/i18n/unicode/ucal.h (revision 24014)
+++ source/i18n/unicode/ucal.h (revision 24398)
@@ -1098,5 +1098,5 @@
  * @param status error code for the operation
  * @return the version string, such as "2007f"
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const char * U_EXPORT2
Index: source/i18n/unicode/tzrule.h
===================================================================
--- source/i18n/unicode/tzrule.h (revision 23962)
+++ source/i18n/unicode/tzrule.h (revision 24398)
@@ -28,5 +28,5 @@
  * raw offset (UTC offset for standard time) and daylight saving time offset.
  *
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API TimeZoneRule : public UObject {
@@ -34,5 +34,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~TimeZoneRule();
@@ -42,5 +42,5 @@
      * should delete it when done.
      * @return  A copy of the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual TimeZoneRule* clone(void) const = 0;
@@ -51,5 +51,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator==(const TimeZoneRule& that) const;
@@ -60,5 +60,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator!=(const TimeZoneRule& that) const;
@@ -68,5 +68,5 @@
      * @param name  Receives the name of this time zone.
      * @return  A reference to "name"
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UnicodeString& getName(UnicodeString& name) const;
@@ -75,5 +75,5 @@
      * Gets the standard time offset.
      * @return  The standard time offset from UTC in milliseconds.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getRawOffset(void) const;
@@ -83,5 +83,5 @@
      * @return  The amount of daylight saving offset used by this rule
      *          in milliseconds.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getDSTSavings(void) const;
@@ -93,5 +93,5 @@
      * @param other The <code>TimeZoneRule</code> object to be compared with.
      * @return  true if the other <code>TimeZoneRule</code> is the same as this one.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool isEquivalentTo(const TimeZoneRule& other) const;
@@ -106,5 +106,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const = 0;
@@ -119,5 +119,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const = 0;
@@ -135,5 +135,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -152,5 +152,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -166,5 +166,5 @@
      * @param dstSavings    The amount of daylight saving offset adjustment in milliseconds.
      *                      If this ia a rule for standard time, the value of this argument is 0.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings);
@@ -173,5 +173,5 @@
      * Copy constructor.
      * @param source    The TimeZoneRule object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneRule(const TimeZoneRule& source);
@@ -180,5 +180,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeZoneRule& operator=(const TimeZoneRule& right);
@@ -194,5 +194,5 @@
  * representing a time zone effective from the beginning and
  * has no actual start times.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API InitialTimeZoneRule : public TimeZoneRule {
@@ -205,5 +205,5 @@
      * @param dstSavings    The amount of daylight saving offset adjustment in milliseconds.
      *                      If this ia a rule for standard time, the value of this argument is 0.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     InitialTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings);
@@ -212,5 +212,5 @@
      * Copy constructor.
      * @param source    The InitialTimeZoneRule object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     InitialTimeZoneRule(const InitialTimeZoneRule& source);
@@ -218,5 +218,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~InitialTimeZoneRule();
@@ -226,5 +226,5 @@
      * should delete it when done.
      * @return    A copy of the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual InitialTimeZoneRule* clone(void) const;
@@ -233,5 +233,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     InitialTimeZoneRule& operator=(const InitialTimeZoneRule& right);
@@ -242,5 +242,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator==(const TimeZoneRule& that) const;
@@ -251,5 +251,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator!=(const TimeZoneRule& that) const;
@@ -265,5 +265,5 @@
      * @return  true if this rule takes effect in the year and the result is set to
      *          "result".
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool getStartInYear(int32_t year, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -275,5 +275,5 @@
      * @param that  The <code>TimeZoneRule</code> object to be compared with.
      * @return  true if the other <code>TimeZoneRule</code> is equivalent to this one.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool isEquivalentTo(const TimeZoneRule& that) const;
@@ -288,5 +288,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -301,5 +301,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -317,5 +317,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -334,5 +334,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -349,5 +349,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -362,5 +362,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
@@ -372,5 +372,5 @@
  * is based on Gregorian calendar
  *
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule {
@@ -396,5 +396,5 @@
      * @param endYear       The last year when this rule takes effect.  If this
      *                      rule is effective forever in future, specify MAX_YEAR.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     AnnualTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings,
@@ -415,5 +415,5 @@
      * @param endYear       The last year when this rule takes effect.  If this
      *                      rule is effective forever in future, specify MAX_YEAR.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     AnnualTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings,
@@ -423,5 +423,5 @@
      * Copy constructor.
      * @param source    The AnnualTimeZoneRule object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     AnnualTimeZoneRule(const AnnualTimeZoneRule& source);
@@ -429,5 +429,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~AnnualTimeZoneRule();
@@ -437,5 +437,5 @@
      * should delete it when done.
      * @return    A copy of the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual AnnualTimeZoneRule* clone(void) const;
@@ -444,5 +444,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     AnnualTimeZoneRule& operator=(const AnnualTimeZoneRule& right);
@@ -453,5 +453,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator==(const TimeZoneRule& that) const;
@@ -462,5 +462,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator!=(const TimeZoneRule& that) const;
@@ -470,5 +470,5 @@
      * @return  The <code>AnnualDateTimeRule</code> which represents the start date/time
      *          rule used by this time zone rule.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     const DateTimeRule* getRule(void) const;
@@ -478,5 +478,5 @@
      * @return  The start year of this rule.  The year is in Gregorian calendar
      *          with 0 == 1 BCE, -1 == 2 BCE, etc.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getStartYear(void) const;
@@ -486,5 +486,5 @@
      * @return  The end year of this rule (inclusive). The year is in Gregorian calendar
      *          with 0 == 1 BCE, -1 == 2 BCE, etc.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t getEndYear(void) const;
@@ -500,5 +500,5 @@
      * @return  true if this rule takes effect in the year and the result is set to
      *          "result".
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool getStartInYear(int32_t year, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -510,5 +510,5 @@
      * @param that  The <code>TimeZoneRule</code> object to be compared with.
      * @return  true if the other <code>TimeZoneRule</code> is equivalent to this one.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool isEquivalentTo(const TimeZoneRule& that) const;
@@ -523,5 +523,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -536,5 +536,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -552,5 +552,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -569,5 +569,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -590,5 +590,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -603,5 +603,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
@@ -612,5 +612,5 @@
  * defined by an array of milliseconds since the standard base time.
  *
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule {
@@ -631,5 +631,5 @@
      *                      <code>DataTimeRule::WALL_TIME</code>, <code>STANDARD_TIME</code>
      *                      and <code>UTC_TIME</code>.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeArrayTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings,
@@ -639,5 +639,5 @@
      * Copy constructor.
      * @param source    The TimeArrayTimeZoneRule object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeArrayTimeZoneRule(const TimeArrayTimeZoneRule& source);
@@ -645,5 +645,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~TimeArrayTimeZoneRule();
@@ -653,5 +653,5 @@
      * should delete it when done.
      * @return    A copy of the object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual TimeArrayTimeZoneRule* clone(void) const;
@@ -660,5 +660,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     TimeArrayTimeZoneRule& operator=(const TimeArrayTimeZoneRule& right);
@@ -669,5 +669,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator==(const TimeZoneRule& that) const;
@@ -678,5 +678,5 @@
      * @param that  The object to be compared with.
      * @return  true if the given <code>TimeZoneRule</code> objects are semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator!=(const TimeZoneRule& that) const;
@@ -688,5 +688,5 @@
      *
      * @return The time type used of the start times used by this rule.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     DateTimeRule::TimeRuleType getTimeType(void) const;
@@ -699,5 +699,5 @@
      *          and the result is set.  When false, the output
      *          parameger "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool getStartTimeAt(int32_t index, UDate& result) const;
@@ -706,5 +706,5 @@
      * Returns the number of start times stored in this rule
      * @return The number of start times.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     int32_t countStartTimes(void) const;
@@ -716,5 +716,5 @@
      * @param that  The <code>TimeZoneRule</code> object to be compared with.
      * @return  true if the other <code>TimeZoneRule</code> is equivalent to this one.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool isEquivalentTo(const TimeZoneRule& that) const;
@@ -729,5 +729,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -742,5 +742,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
@@ -758,5 +758,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -775,5 +775,5 @@
      * @return  true if the start time is available.  When false is returned, output parameter
      *          "result" is unchanged.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
@@ -801,5 +801,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -814,5 +814,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
Index: source/i18n/unicode/vtzone.h
===================================================================
--- source/i18n/unicode/vtzone.h (revision 23962)
+++ source/i18n/unicode/vtzone.h (revision 24398)
@@ -35,5 +35,5 @@
  * decode or encode Non-ASCII text.  Methods reading/writing VTIMEZONE data in this class
  * do nothing with MIME encoding.
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 class U_I18N_API VTimeZone : public BasicTimeZone {
@@ -42,5 +42,5 @@
      * Copy constructor.
      * @param source    The <code>VTimeZone</code> object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     VTimeZone(const VTimeZone& source);
@@ -48,5 +48,5 @@
     /**
      * Destructor.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual ~VTimeZone();
@@ -55,5 +55,5 @@
      * Assignment operator.
      * @param right The object to be copied.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     VTimeZone& operator=(const VTimeZone& right);
@@ -65,5 +65,5 @@
      * @return  true if the given <code>TimeZone</code> objects are
       *semantically equal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator==(const TimeZone& that) const;
@@ -75,5 +75,5 @@
      * @return  true if the given <code>TimeZone</code> objects are
      * semantically unequal.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool operator!=(const TimeZone& that) const;
@@ -84,5 +84,5 @@
      * @return A <code>VTimeZone</code> object initialized by the time zone ID,
      * or NULL when the ID is unknown.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static VTimeZone* createVTimeZoneByID(const UnicodeString& ID);
@@ -95,5 +95,5 @@
      * @return A <code>VTimeZone</code> initialized by the VTIMEZONE data or
      * NULL if failed to load the rule from the VTIMEZONE data.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static VTimeZone* createVTimeZone(const UnicodeString& vtzdata, UErrorCode& status);
@@ -105,5 +105,5 @@
      * @param url Receives the RFC2445 TZURL property value.
      * @return TRUE if TZURL attribute is available and value is set.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool getTZURL(UnicodeString& url) const;
@@ -112,5 +112,5 @@
      * Sets the RFC2445 TZURL property value.
      * @param url The TZURL property value.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setTZURL(const UnicodeString& url);
@@ -122,5 +122,5 @@
      * @param lastModified Receives the last modified date.
      * @return TRUE if lastModified attribute is available and value is set.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UBool getLastModified(UDate& lastModified) const;
@@ -129,5 +129,5 @@
      * Sets the RFC2445 LAST-MODIFIED property value.
      * @param lastModified The LAST-MODIFIED date.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void setLastModified(UDate lastModified);
@@ -137,5 +137,5 @@
      * @param result Output param to filled in with the VTIMEZONE data.
      * @param status Output param to filled in with a success or an error.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void write(UnicodeString& result, UErrorCode& status) const;
@@ -147,5 +147,5 @@
      * @param result Output param to filled in with the VTIMEZONE data.
      * @param status Output param to filled in with a success or an error.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void write(UDate start, UnicodeString& result, UErrorCode& status) /*const*/;
@@ -162,5 +162,5 @@
      * @param result Output param to filled in with the VTIMEZONE data.
      * @param status Output param to filled in with a success or an error.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     void writeSimple(UDate time, UnicodeString& result, UErrorCode& status) /*const*/;
@@ -170,5 +170,5 @@
      * the TimeZone object cloned.
      * @return   A new copy of this TimeZone object.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual TimeZone* clone(void) const;
@@ -196,5 +196,5 @@
      * @param status     Output param to filled in with a success or an error.
      * @return           The offset in milliseconds to add to GMT to get local time.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
@@ -218,5 +218,5 @@
      * @param status     Output param to filled in with a success or an error.
      * @return           The offset in milliseconds to add to GMT to get local time.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
@@ -244,5 +244,5 @@
      * typically one hour.
      * @param ec input-output error code
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getOffset(UDate date, UBool local, int32_t& rawOffset,
@@ -254,5 +254,5 @@
      *
      * @param offsetMillis  The new raw GMT offset for this time zone.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void setRawOffset(int32_t offsetMillis);
@@ -263,5 +263,5 @@
      *
      * @return   The TimeZone's raw GMT offset.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t getRawOffset(void) const;
@@ -271,5 +271,5 @@
      * @return true if this time zone uses daylight savings time,
      * false, otherwise.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool useDaylightTime(void) const;
@@ -296,5 +296,5 @@
      * @return true if the given zone is the same as this one,
      * with the possible exception of the ID
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool hasSameRules(const TimeZone& other) const;
@@ -306,5 +306,5 @@
      * @param result    Receives the first transition after the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/;
@@ -316,5 +316,5 @@
      * @param result    Receives the most recent transition before the base time.
      * @return  TRUE if the transition is found.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/;
@@ -326,5 +326,5 @@
      * @param status    Receives error status code.
      * @return The number of <code>TimeZoneRule</code>s representing time transitions.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual int32_t countTransitionRules(UErrorCode& status) /*const*/;
@@ -344,5 +344,5 @@
      *                      rules filled in the array will be set.
      * @param status        Receives error status code.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
@@ -418,5 +418,5 @@
      * </pre>
      * @return          The class ID for all objects of this class.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     static UClassID U_EXPORT2 getStaticClassID(void);
@@ -431,5 +431,5 @@
      *                  given class have the same class ID.  Objects of
      *                  other classes have different class IDs.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     virtual UClassID getDynamicClassID(void) const;
Index: source/common/unicode/uscript.h
===================================================================
--- source/common/unicode/uscript.h (revision 23962)
+++ source/common/unicode/uscript.h (revision 24398)
@@ -162,5 +162,5 @@
       USCRIPT_UNKNOWN                       = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */

-      /* New script codes from ISO 15924 @stable ICU 4.0 */
+      /* New script codes from ISO 15924 @stable ICU 3.8 */
       USCRIPT_CARIAN                        = 104,/* Cari */
       USCRIPT_JAPANESE                      = 105,/* Jpan */
Index: source/common/unicode/uloc.h
===================================================================
--- source/common/unicode/uloc.h (revision 23962)
+++ source/common/unicode/uloc.h (revision 24398)
@@ -958,5 +958,5 @@
  *  is too small
  * @return actual the actual size of the locale ID, not including NUL-termination
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
Index: source/common/unicode/uset.h
===================================================================
--- source/common/unicode/uset.h (revision 23962)
+++ source/common/unicode/uset.h (revision 24398)
@@ -153,5 +153,5 @@
  * are ignored.
  *
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 typedef enum USetSpanCondition {
@@ -165,5 +165,5 @@
      * and none of its strings overlap with the span.
      *
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     USET_SPAN_NOT_CONTAINED = 0,
@@ -180,5 +180,5 @@
      * This is equivalent to a POSIX regular expression for (OR of each set element)*.
      *
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     USET_SPAN_CONTAINED = 1,
@@ -199,10 +199,10 @@
      * such as ICU converters (ucnv_getUnicodeSet()).
      *
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     USET_SPAN_SIMPLE = 2,
     /**
      * One more than the last span condition.
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     USET_SPAN_CONDITION_COUNT
@@ -301,5 +301,5 @@
  * @return the newly allocated copy of the set
  * @see uset_cloneAsThawed
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT USet * U_EXPORT2
@@ -313,5 +313,5 @@
  * @see uset_freeze
  * @see uset_cloneAsThawed
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT UBool U_EXPORT2
@@ -330,5 +330,5 @@
  * @see uset_isFrozen
  * @see uset_cloneAsThawed
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT void U_EXPORT2
@@ -343,5 +343,5 @@
  * @see uset_isFrozen
  * @see uset_clone
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT USet * U_EXPORT2
@@ -856,5 +856,5 @@
  * @return the length of the initial substring according to the spanCondition;
  *         0 if the start of the string does not fit the spanCondition
- * @stable ICU 4.0
+ * @stable ICU 3.8
  * @see USetSpanCondition
  */
@@ -877,5 +877,5 @@
  * @return the start of the trailing substring according to the spanCondition;
  *         the string length if the end of the string does not fit the spanCondition
- * @stable ICU 4.0
+ * @stable ICU 3.8
  * @see USetSpanCondition
  */
@@ -899,5 +899,5 @@
  * @return the length of the initial substring according to the spanCondition;
  *         0 if the start of the string does not fit the spanCondition
- * @stable ICU 4.0
+ * @stable ICU 3.8
  * @see USetSpanCondition
  */
@@ -920,5 +920,5 @@
  * @return the start of the trailing substring according to the spanCondition;
  *         the string length if the end of the string does not fit the spanCondition
- * @stable ICU 4.0
+ * @stable ICU 3.8
  * @see USetSpanCondition
  */
Index: source/common/unicode/uniset.h
===================================================================
--- source/common/unicode/uniset.h (revision 23962)
+++ source/common/unicode/uniset.h (revision 24398)
@@ -481,5 +481,5 @@
      * @see freeze
      * @see cloneAsThawed
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     inline UBool isFrozen() const;
@@ -496,5 +496,5 @@
      * @see isFrozen
      * @see cloneAsThawed
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UnicodeFunctor *freeze();
@@ -506,5 +506,5 @@
      * @see freeze
      * @see isFrozen
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      */
     UnicodeFunctor *cloneAsThawed() const;
@@ -817,5 +817,5 @@
      * @return the length of the initial substring according to the spanCondition;
      *         0 if the start of the string does not fit the spanCondition
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      * @see USetSpanCondition
      */
@@ -836,5 +836,5 @@
      * @return the start of the trailing substring according to the spanCondition;
      *         the string length if the end of the string does not fit the spanCondition
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      * @see USetSpanCondition
      */
@@ -856,5 +856,5 @@
      * @return the length of the initial substring according to the spanCondition;
      *         0 if the start of the string does not fit the spanCondition
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      * @see USetSpanCondition
      */
@@ -875,5 +875,5 @@
      * @return the start of the trailing substring according to the spanCondition;
      *         the string length if the end of the string does not fit the spanCondition
-     * @stable ICU 4.0
+     * @stable ICU 3.8
      * @see USetSpanCondition
      */
Index: source/common/unicode/utext.h
===================================================================
--- source/common/unicode/utext.h (revision 24046)
+++ source/common/unicode/utext.h (revision 24398)
@@ -727,5 +727,5 @@
   * the range of the input text.
   *
-  * @stable ICU 4.0
+  * @stable ICU 3.8
   */
 #define UTEXT_SETNATIVEINDEX(ut, ix)                       \
Index: source/common/unicode/ucasemap.h
===================================================================
--- source/common/unicode/ucasemap.h (revision 23962)
+++ source/common/unicode/ucasemap.h (revision 24398)
@@ -137,5 +137,5 @@
  * @see ucasemap_utf8ToTitle
  * @see UnicodeString::toTitle
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 #define U_TITLECASE_NO_LOWERCASE 0x100
@@ -162,5 +162,5 @@
  * @see UnicodeString::toTitle
  * @see U_TITLECASE_NO_LOWERCASE
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 #define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
@@ -175,5 +175,5 @@
  * @param csm UCaseMap service object.
  * @return titlecasing break iterator
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT const UBreakIterator * U_EXPORT2
@@ -198,5 +198,5 @@
  * @see ucasemap_toTitle
  * @see ucasemap_utf8ToTitle
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT void U_EXPORT2
@@ -242,5 +242,5 @@
  *
  * @see u_strToTitle
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
@@ -349,5 +349,5 @@
  * @see U_TITLECASE_NO_LOWERCASE
  * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
@@ -385,5 +385,5 @@
  * @see U_FOLD_CASE_DEFAULT
  * @see U_FOLD_CASE_EXCLUDE_SPECIAL_I
- * @stable ICU 4.0
+ * @stable ICU 3.8
  */
 U_DRAFT int32_t U_EXPORT2
Index: source/common/unicode/unistr.h
===================================================================
--- source/common/unicode/unistr.h (revision 23962)
+++ source/common/unicode/unistr.h (revision 24398)
@@ -2502,5 +2502,5 @@
    * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
    * @see ucasemap_open
-   * @stable ICU 4.0
+   * @stable ICU 3.8
    */
   UnicodeString &toTitle(BreakIterator *titleIter, const Locale &locale, uint32_t options);
Index: source/layout/LEScripts.h
===================================================================
--- source/layout/LEScripts.h (revision 23962)
+++ source/layout/LEScripts.h (revision 24398)
@@ -151,5 +151,5 @@
     zzzzScriptCode = 103,

-    /** New script codes from ISO 15924 @stable ICU 4.0 */
+    /** New script codes from ISO 15924 @stable ICU 3.8 */
     cariScriptCode = 104,
     jpanScriptCode = 105,
